package kr.pe.johnkim.app.mobile.rest.dao;

import kr.pe.johnkim.app.domain.MyHistoryCategory;
import kr.pe.johnkim.app.domain.MyHistoryGroup;
import kr.pe.johnkim.app.domain.MyHistoryGroupRelation;

import java.util.List;

/**
 * My History 그룹 관련 기능들을 정의한 인터페이스 이다.
 * 
 * @author : johnkim <cale9797@gmail.com / Simple.ly Inc,>
 * @Date : 12. 1. 4
 */
public interface MyHistoryGroupRelationDao {
    /**
     * 카테고리를 그룹에 연결 한다.
     * 
     * @param myHistoryGroupRelation
     * @return True or False
     */
    public boolean registerRelation(MyHistoryGroupRelation myHistoryGroupRelation);

    /**
     * 카테고리를 그룹에 연결 해제 한다.
     * 
     * @param myHistoryGroupRelation
     * @return True or False
     */
    public boolean updateDeactivateRelation(MyHistoryGroupRelation myHistoryGroupRelation);

    /**
     * 카테고리에 연결된 그룹 목록을 가져 온다.
     * 
     * @param myHistoryGroupRelation
     * @return List<MyHistoryGroup>
     */
    public List<MyHistoryGroup> selectRelationGroupList(MyHistoryGroupRelation myHistoryGroupRelation);

    /**
     * 그룹에 연결된 카테고리 목록을 가져 온다.
     * 
     * @param myHistoryGroupRelation
     * @return List<MyHistoryCategory>
     */
    public List<MyHistoryCategory> selectRelationCategoryList(MyHistoryGroupRelation myHistoryGroupRelation);
}
